﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <assert.h>
// 原题连接：https://leetcode.cn/problems/er-cha-shu-de-jing-xiang-lcof/
/*
题目描述：
请完成一个函数，输入一个二叉树，该函数输出它的镜像。

例如输入：

     4
   /   \
  2     7
 / \   / \
1   3 6   9
镜像输出：

     4
   /   \
  7     2
 / \   / \
9   6 3   1

 

示例 1：
输入：root = [4,2,7,1,3,6,9]
输出：[4,7,2,9,6,3,1]
 

限制：
0 <= 节点个数 <= 1000
*/


struct TreeNode {
	int val;
	struct TreeNode* left;
	struct TreeNode* right;
};

// 开始解题：
struct TreeNode* mirrorTree(struct TreeNode* root) {
    if (NULL == root) {
        return NULL;
    }
    struct TreeNode* tempLeft = root->left; // 先保存原来左树的指向
    root->left = mirrorTree(root->right);

    root->right = mirrorTree(tempLeft);
    return root;

}
